package com.zhuiwei.springbootcache;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;

/**
 * 搭建环境
 * 1、搭建mysql数据库，创建department和employee表
 * 2、创建javabean
 * 3、整合Mybatis操作数据库
 *    1.配置数据源
 *    2.整合注解版的MyBatis
 *       2.1.1 @MapperScan扫描包
 *
 * 快速使用
 * 1、开启基于注解的缓存@EnableCaching
 * 2、使用注解标注方法即可
 *     @Cacheable
 *     @CacheEvict
 *     @CachePut
 *
 * 开发中使用的缓存中间件:redis、memcached、ehcache
 *
 *
 * 整合redis
 * 1、安装redis
 * 2、引入redis的starter
 * 3、配置配置文件的redis
 *       -默认是CacheManager创建Cache缓存组件给缓存中存取数据
 *       -引入redis的starter，容器中保存的是RedisCacheManager,它会创建RedisCache来作为缓存组件，RedisCache通过操作redis缓存数据
 *
 * redis保存数据k-v 都是Object，如何将对象保存为json
 *   原因：引入了redis的starter，cacheManager变为RedisCacheManager,在操作数据时使用RedisTemplate<Object,Object>，而redisTemplate<Object,Object>默认使用jdk的序列化器
 *   解决方式：自定义CacheManager
 */
@MapperScan("com.zhuiwei.springbootcache.mapper")
@EnableCaching
@SpringBootApplication
public class SpringBootCacheApplication {

	private final String string = "com.zhuiwei.springbootcache.mapper";

	public static void main(String[] args) {
		SpringApplication.run(SpringBootCacheApplication.class, args);
	}

}
